/*
 * Propiedad de Fernando Lorenta
 * Ejercicios Java PCarrier
 *
 * Escribimos en un archivo el contenedor de Objetos que nos pasen.
 * Si nos pasan un entero:
 * 1.- Escribo en boletines
 * 2.- Ejercicios
 */

package Archivos;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import objetos.ObjetoBoletin;
import objetos.Objetos;
import ventanaPrincipal.VentanaPrincipal;

/**
 *
 * @author fernan
 */
public class EscribirEnArchivo implements Runnable{
    
    private FileOutputStream fos = null;
    private ObjectOutputStream oos = null;
    private ArrayList contenedor;
    private VentanaPrincipal ventanaPrincipal;
    private String archivo;
    
    public EscribirEnArchivo() {     
    }//public EscribirEnArchivo()
    
    public EscribirEnArchivo(VentanaPrincipal ventanaPrincipal, int tipoArchivo) {
        
        this.ventanaPrincipal = ventanaPrincipal;
               
        //Compruebo el primer valor de contenedor para saber de que tipos de 
        //objetos voy a escribir y así asigno el archivo correspondiente
        if (tipoArchivo == 1) {
            archivo = "boletines.btn";
            contenedor = ventanaPrincipal.getContenedorBoletines();
            
        }
        
        else {
            archivo = "ejercicios.eje";
            contenedor = ventanaPrincipal.getContenedorEjerjcicios();
        }
        
    }//public EscribirEnArchivo(VentanaPrincipal ventanaPrincipal)

    @Override
    public void run() {
        
        try {
            fos = new FileOutputStream(archivo);
            oos = new ObjectOutputStream(fos);
            
            oos.writeObject(contenedor);
            
        } catch (FileNotFoundException ex) {
            Logger.getLogger(EscribirEnArchivo.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(EscribirEnArchivo.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        finally {
            if (fos != null) {
                try {               
                    oos.close();
                    fos.close();
                } catch (IOException ex) {
                    Logger.getLogger(EscribirEnArchivo.class.getName()).log(Level.SEVERE, null, ex);
                }
                
            }
        }
        
        
    }
}//public class EscribirEnArchivo
